// security
import security from "./security";
import application from "./application-context";

// import api from "./api";

// base tools
import Layers from "@/lang/layers";
import Eventbus from "@/lang/eventbus";

// menu
// import MenuManager from "./menu-manager";
// uploader
import Setting from "../lang/setting";

/**
 * 系统初始化
 *
 * 与 main.js 功能类似，负责协调组件之间的依赖，完成系统的初始配置。
 *
 * 与 main.js 的区别是，这个类更关注于架构上的逻辑，
 *
 * 比如：全局请求拦截、系统鉴权、用户上下文等等。
 */
class Initialize {
    // do nth.
}

console.log("system is initializing...");

/**
 * 工具类配置
 * --------------------------------------------------------------------------------------------
 */
if (Layers) {
    const setting = new Setting();

}

/**
 * 初始化菜单栏配置
 * --------------------------------------------------------------------------------------------
 */
// if (MenuManager) {
//     // 初始化动态路由
//     MenuManager.pushMenus();
// }


/**
 * 接口测试数据
 *
 * 如果是纯前端，可能需要引入一些框架，
 *
 * 不过本人是后端程序员，很容易制作测试数据，这方面的实现可能有点不合主流做法
 * --------------------------------------------------------------------------------------------
 */
// if (api) {
// }

/**
 * 数据总线初始化
 * --------------------------------------------------------------------------------------------
 */
if (Eventbus) {
    window.Eventbus = Eventbus;
}

console.log("system is initialized!");

export default {Layers, Eventbus, security, application}
